1. Field of the Invention
This invention relates generally to data analysis and presentation and more particularly to a system and method for analyzing, aggregating and presenting an unlimited amount of data as customizable and easily modified reports, generally used for business intelligence purposes.
2. Description of the Related Art
Vast amounts of data are available for corporations concerning their customers. A business has numerous contact points with customers including but not limited to the Internet, Interactive Voice Response (IVR) systems, private company databases, and Enterprise Resource Planning (ERP) systems. Each of these customer contact points contains data capable of being mined and presented for business intelligence purposes.
The Internet has allowed unlimited access for customers to a company""s web site. This unlimited access creates a wealth of information in the form of web log files. Companies can use the web log files to extract information concerning the customers use of the web site.
An organization may have a phone system capable of Interactive Voice Response that customers routinely access. Data stored in the IVR data files can be presented to provide a profile of a customer""s use of the IVR system. In addition, private company databases also contain data files that can be mined and presented for business intelligence purposes.
Typically a business will have in-house databases containing accounting, financial and sales data. These in-house databases are commonly referred to as ERP systems and are a valuable source of financial data.
It can be appreciated that there are a large number of sources containing data that can be aggregated by businesses to analyze customer interactions. The data contained in each of the above referenced databases consists of various data file types (i.e., varying data format). Even within the same database the file types may differ. Under current practices, the presentation of multi-dimensional data (e.g., cubes) from the various data files yields rigid reports incapable of being easily modified.
With the wealth of data available, it is necessary to create meaningful reports that integrate and parse the data in a manner that will reveal a coveted relationship. Because of the overwhelming amount of data available, it is necessary to manipulate the data so that the presentation of the data will capture the essence of a previously unknown relationship. Accordingly, the customer will need the capability to modify an interactive presentation so that the data is viewed from all angles in real-time.
Presentation of the data can take the form of a two dimensional report (e.g., using spreadsheets or tables) or a multi-dimensional report (e.g., using cubes). In a multi-dimensional presentation, a cube may be displayed. Under current practices, the cube is displayed from a defined data set through an online analytical processing (OLAP) system. An OLAP data cube can be presented as a multi-dimensional cube representing any number of descriptive categories or business metrics (dimensions) and quantitative values (measures). An example of a dimension could be a time dimension such as the number of visits to a sports web site in a day, week month or year time frame, while a measure could be the number of times a Uniform Resource Locator (URL) has been viewed (page-views), the number of times a URL has been used as an entry page (entrance) or the number of times a URL has been used as an exit page (exit). A dimension may further be defined as a sub-dimension or level. For example, a sports web site may be subdivided into a particular sport such as football or baseball.
Current OLAP systems demand that once the customer defines the dimensions of the cube, the required data be input into a relational data table, in a uniform format, as defined by a particular OLAP system. The building of the relational data table is a time consuming and expensive process. Furthermore, once the data table has been built the customer is limited to the dimensions defined above. In other words, once the dimensions are defined by the customer and the relational data tables are built, the dimensions are fixed. In order to add a dimension once the relational data table is built, the manager of the relational data table would need to modify its data structure. Such a modification is a monumental task, which is virtually impossible, as well as time consuming and prohibitively expensive. For example, to add a dimension where data from the previous year or two for a web site with high traffic would require a massive effort where literally billions of data would be required to be obtained, formatted and loaded.
FIG. 1 illustrates a block diagram 100 summarizing the current practice employed by the industry. In FIG. 1, the example may be considered as that of a newspaper""s web site where the newspaper is interested in viewing the web site traffic through its various web pages. First, the customer (the newspaper organization) predefines the dimensions and views 102 that are to be measured and presented. Next, the data relevant to each dimension, depicted as 104a, 104b, 104c and 104n are input to a relational data table 106. It can be appreciated that the dimensions can include any business metric capable of being captured and input into the relational data table 106. For example, the dimensions may include the traffic data from various sections of a newspaper""s web site such as sports, politics, real estate and financial sections and the data from these respective sections may be represented by 104a, 104b, 104c and 104n, respectively. The data for each dimension are converted to a uniform format and input into the relational data table 106 as data files DF1108a, DF2108b, DF3108c and DFn 108n. As shown in FIG. 1, any number of data files can be input into the relational data table 106 as represented by data files DF1110a, DF2110b, DF3n 110c and Dfnn 110n. A server 112 then aggregates the data and optimizes the storage of the data so that the data may be viewed according to the users predefined request 102. An OLAP cube viewer 114 then takes the data from the server 112 and presents the cube as predefined by the user in operation 102. It should be noted that the cube viewer 114 can be any of a number of commercially available cube viewers (e.g., cube viewers from MICROSOFT(trademark), HYPERION(trademark) or CUBULARITY(trademark)).
As noted above, the current method of viewing a multidimensional OLAP cube requires that the data structure, i.e., relational data table, exists prior to the cube viewer looking at the table. Because the relational data table must be predefined, the dimensions of the cube are fixed up-front since each dimension of the cube must be defined in a field of the relational data table. In addition, the data must be in a specified format for the cube viewer to recognize the data. Moreover, all the data predefined by the customer, is downloaded locally to the customer""s computer or the entire cube must be viewed on a server through the Internet, even if the viewer only desires to view a subset of the data. As such, viewing of the cube may become a slow process as the cube size increases.
In a dynamic and fast paced business environment where change is constant, the rigidity and inflexibility of the current method of processing and viewing OLAP cubes fails to unleash the true potential of an OLAP system. Consumer buying habits or Internet viewing patterns can change in an instant by numerous external variables (i.e., fads, safety concerns, protests or boycotts). If a customer did not have the foresight to include a dimension capturing the data to monitor a change in the buying habits or viewing patterns, the data contained in the relational data table is rendered useless by the change in an external variable. If a customer wishes to modify or add a dimension, a new relational data table must be created assuming the data for the modified or new dimension is even available. Since the creation of the table is time consuming, the data the customer desires to capture may be stale by the time the process is repeated. Additionally, the cost may be prohibitive.
Much of the aforementioned problems with the OLAP cube presentation arise because of the present system""s requirement of predefining all dimensions up-front combined with the lack of any simple and inexpensive method to change the dimensions and gather the necessary data for the change. Moreover, report updates require the entire process to be repeated, thereby incurring a high cost, losing valuable time and not allowing for the generation of true on-demand reports.
As a result, there is a need for a solution to the problems of the prior art to allow each customer the capability to easily modify the dimensions, create virtual dimensions and to seamlessly integrate web based and non-web based data. There is also a need for methods that enable a user to view only the data which is requested for better efficiency.
Broadly speaking, the present invention fills these needs by providing a flexible dynamic and efficient method for acquiring and presenting data from various sources to be used for business intelligence purposes. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, computer readable media, or a device. Several inventive embodiments of the present invention are described below.
In one embodiment, a method accessing selected data for presentation as multi-dimensional cubes over a network connection is provided. In this embodiment dimensions for generating a cube are defined. Next processed data from a flat file are acquired where the processed data contain relevant information for the defined dimensions. Then the acquired processed data is stored in a hierarchical table structure. Then a cube is generated from the hierarchical table structure. Next the cube is accessed through an abstraction layer. The abstraction layer performs the operations of reading only selected portions of the relevant information for the defined dimensions, converting the selected portions of the relevant information to a uniform format and displaying selected portions of the relevant information without causing non-selected portions of the relevant information to be read and converted.
In another embodiment a method for accessing selected data for presentation as multi-dimensional cubes over a network connection is provided. In this embodiment a first and a second dimension for generating a cube are defined. Then a hierarchical table structure is created from a flat file for the first dimension where the hierarchical table structure contains relevant information to the first dimension. Then a cube is generated from the hierarchical table structure. Next a relational data table is identified for the second dimension where the relational data table contains relevant information to the second dimension. Then the cube and the relational data table are accessed through an abstraction layer. The abstraction layer performs the operations of reading only selected portions of the relevant information for the defined dimensions, converting the selected portions of the relevant information to a uniform format and displaying selected portions of the relevant information without causing non-selected portions of the relevant information to be read and converted.
In yet another embodiment, a method for accessing relevant data from differing sources for presentation over a network connection is provided. In this embodiment multiple dimensions are defined. Then data sources for the multiple dimensions are identified where the data sources contain relevant information for the dimensions. Next the data sources are accessed through an abstraction layer. The abstraction layer performs the operations of transferring selected portions of the relevant information for each dimension from each data source to a data structure and displaying the selected portions of the relevant information.
In still another embodiment, a computer readable media having program instructions for accessing relevant data from differing data sources for presentation over a network connection is provided. One exemplary computer readable media includes program instructions for defining multiple dimensions. In addition, the computer readable media includes program instructions for identifying data sources for the multiple dimensions where the data sources contain relevant information for the dimensions. Additionally, the computer readable media includes program instructions for accessing the data sources through an abstraction layer, where the abstraction layer includes program instructions for transferring selected portions of the relevant information for each dimension from each data source to a data structure, and program instructions for displaying the selected portions of the relevant information.
The advantages of the present invention are numerous. Most notably, the methods for displaying multi-dimensional views to allow the customer to create virtual dimensions that can easily be modified. The creation of the virtual dimensions through the building of a hierarchical table structure from data contained in a flat file allows the customer to be provided with ad-hoc dynamic reports in real-time (e.g., in web database formats), thereby allowing for time sensitive and mission critical business decision to be made with all the current data at the executives fingertips. In addition, the use of an abstraction layer to manage the data being presented allows for ease of modification and efficiency in presentation since only the user requested data is presented. Furthermore, due to the uniform centralized format of the acquired data, the presentation of the data can be modified and represented in an efficient manner. Finally, the presentation of the data can be customized to present a multi-dimensional display of the real world raw data enabling the customer a 360xc2x0 view of what is happening with an organization.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.